import config from '@/config'
import {getAjaxConf, getBussinessSupportAjaxConf} from '@/utils'

/**
 * 配置返回字段
 * label: 该字段显示时的名称，默认用key
 * key: 该字段对应后端返回的key值
 * filterKey: 过滤时使用的key值，默认用key
 * updateKey: 修改/添加时使用的key值，默认用key
 * required: 是否必填，默认为false
 * sort: 是否可排序，默认为false
 * filter: 是否可过滤，默认为false
 * add: 是否可添加，默认为false
 * edit: 是否可编辑，默认为false
 * inputType: 输入该字段时使用的输入框类型，默认为text
 * filterType:
 * options: 下拉框可选择的选项
 * ajax: ajax配置， 与inputType为myselect搭配使用
 * currencyOptions：货币选项
 * currencyKey: 货币对应的key值
 * currencyVal: 默认钱数
 */

/**
 * inputType类型
 * text: 浏览器默认文本输入框
 * password：浏览器默认密码输入框
 * number: 浏览器默认数字输入框
 * checkbox: 布尔值选择器
 * textarea: 多行文本输入框
 * myselect: 带远程请求下拉选择框
 * normalSelect: 浏览器默认选择框
 * select: 带样式可多选的选择框
 * tags：输入多个的输入框
 * compactpicker: 颜色选择器
 * money: 货币选择器
 * date: 浏览器默认日期选择器 YYYY-MM-DD
 * datetimepicker: 日期时间选择器 YYYY-MM-DD hh:mm:ss
 * imgBox: 图片显示框 不可编辑
 */

export default {
    'Host': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: 'id', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'Company Name',
            key: 'company__id', value: '', sort: true, edit: true, filter: true, add: true,
            labelKey: 'company__company_name',
            updateKey: 'company',
            defaultValue: null,
            inputType: 'myselect', options: [],
            ajax: getAjaxConf('Company', 'id', 'company_name')
        },
        {
            label: 'Host Name',
            key: 'host_name',
            value: '',
            sort: true,
            edit: false,
            filter: true,
            add: true,
            required: true,
            defaultFilter: true
        },
        {
            label: 'Password',
            key: 'password_hook',
            value: '',
            sort: true,
            edit: true,
            filter: false,
            hide: true,
            required: true,
            add: true,
            inputType: 'password'
        },
        {
            label: 'Email',
            key: 'email',
            filterKey: 'email__icontains',
            value: '',
            sort: true,
            edit: true,
            filter: true,
            add: true,
            inputType: 'tags',
            required: true
        },
        {
            label: 'Business Support',
            key: 'bussiness_support',
            value: '',
            sort: true,
            edit: true,
            filter: true,
            add: true,
            inputType: 'myselect',
            options: [],
            ajax: getBussinessSupportAjaxConf()
        },
        {
            label: 'Operation Support',
            key: 'operation_support',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true
        },
        {
            label: 'Comment',
            key: 'comment',
            filterKey: 'comment__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true
        },
        {
            label: 'Auto Send Order Email',
            key: 'auto_send_order_email',
            value: false,
            sort: false,
            edit: true,
            filter: true,
            add: true,
            inputType: 'checkbox',
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {label: 'Bill Name', key: 'bill_name', value: '', sort: true, edit: true, filter: true, add: true},
        {label: 'Bill ID', key: 'bill_id', value: '', sort: true, edit: false, filter: true, add: false},
        {
            label: 'How to Send Bill',
            key: 'how_to_send_bill',
            filterKey: 'how_to_send_bill__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true,
            inputType: 'tags'
        },
        {
            label: 'Payment Cycle Type',
            key: 'payment_cycle_type',
            value: 'gentime',
            sort: false,
            edit: true,
            filter: true,
            add: true,
            inputType: 'select',
            options: [
                {label: 'gentime', value: 'gentime'},
                {label: 'checkout', value: 'checkout'}
            ]
        },
        {label: 'Payment Formula', key: 'payment_formula', value: '', sort: false, edit: true, filter: true, add: true},
        {
            label: 'Payment Ratio',
            key: 'payment_ratio',
            value: 0,
            sort: false,
            edit: true,
            filter: true,
            add: true,
            inputType: 'number'
        },
        {
            label: 'Payment To', key: 'payment_to', value: '', sort: false, edit: true, filter: true, add: true,
            inputType: 'select', options: [
                {label: 'tokyo', value: 'tokyo'},
                {label: 'guangzhou', value: 'guangzhou'},
                {label: 'bangkok', value: 'bangkok'},
                {label: 'hongkong', value: 'hongkong'},
                {label: 'self_tokyo', value: 'self_tokyo'},
                {label: 'self_guangzhou', value: 'self_guangzhou'},
                {label: 'self_bangkok', value: 'self_bangkok'},
                {label: 'self_hongkong', value: 'self_hongkong'},
            ]
        },
        {label: 'Language', key: 'language', value: '', sort: false, edit: true, filter: true, add: true},
        {label: 'WIFI', key: 'wifi', value: 0, sort: false, edit: true, filter: true, add: true, inputType: 'number'},
        {
            label: 'Chinese Name',
            key: 'chinese_name',
            filterKey: 'chinese_name__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true
        },
        {
            label: 'Tel',
            key: 'tel',
            filterKey: 'tel__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true
        },
        {
            label: 'WeChat',
            key: 'wechat',
            filterKey: 'wechat__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true
        },
        {
            label: 'Line',
            key: 'line',
            filterKey: 'line__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true
        },
        {
            label: 'ID No.',
            key: 'ID_No',
            filterKey: 'ID_No__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true
        },
        {
            label: 'Account Name',
            key: 'account_name',
            filterKey: 'account_name__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true
        },
        {
            label: 'Account No.',
            key: 'account_no',
            filterKey: 'account_no__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true
        },
        {
            label: 'Bank Name',
            key: 'bank_name',
            filterKey: 'bank_name__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true
        },
        {
            label: 'Bank Code',
            key: 'bank_code',
            filterKey: 'bank_code__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true
        },
        {
            label: 'Branch',
            key: 'branch',
            filterKey: 'branch__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true
        },
        {
            label: 'Branch Addr.',
            key: 'branch_addr',
            filterKey: 'branch_addr__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true
        },
        {
            label: 'Katakana',
            key: 'katagana',
            filterKey: 'katagana__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true
        },
    ],
    'PhysicalRoom': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: 'Status', key: 'is_active', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            key: 'host_name_hook',
            label: 'Host Name',
            filterKey: 'host_name',
            value: '',
            inputType: 'myselect',
            options: [],
            filter: true,
            sort: true,
            add: true,
            edit: true,
            required: true,
            ajax: getAjaxConf('Host', 'host_name', 'host_name')
        },
        {
            label: 'PID',
            key: 'physical_room_id',
            filterKey: 'physical_room_id__icontains',
            defaultFilter: true,
            className: 'col-md-6',
            value: '',
            filter: true,
            sort: true,
            edit: false,
            add: true,
            required: true
        },
        {
            label: 'Operator Name',
            key: 'operator_name',
            value: 'No details provided.',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            className: 'col-md-6',
        },
        {
            label: 'Room Type',
            key: 'room_type',
            value: 'share',
            className: 'col-md-6',
            required: true,
            sort: true,
            edit: true,
            filter: true,
            add: true,
            inputType: 'select',
            options: ['share', 'studio', '1ldk', '2ldk', '3ldk', 'other']
        },
        {
            key: 'room_area',
            label: 'City',
            className: 'col-md-6',
            value: '',
            width: 140,
            inputType: 'select',
            options: ['Tokyo', 'Osaka', 'Kyoto', 'Hokkaido', 'Okinawa',
                'Bangkok', 'Kuala Lumpur', 'Ho Chi Minh', 'Singapore', 'Others'],
            edit: true,
            add: true,
            sort: true,
            filter: true,
            required: true
        },
        {
            key: 'begin_date',
            label: 'Begin Date',
            value: '',
            required: true,
            hide: true,
            edit: true,
            add: true,
            inputType: 'date',
            className: 'col-md-4',
        },
        {
            key: 'ical_value',
            label: 'Ical Value',
            value: 0,
            className: 'col-md-4',
            inputType: 'number',
            min: 0,
            max: 99999999,
            edit: true,
            add: true,
            hide: true,
        },
        {
            key: 'end_date',
            label: 'End Date',
            value: '',
            inputType: 'date',
            className: 'col-md-4',
            filterInputType: 'date',
            filterKey: 'end_date__gte',
            filter: true,
            add: true,
            edit: true,
            hide: true,
            required: true
        },
        {
            key: 'location',
            filterKey: 'location__icontains',
            label: 'Location',
            value: '',
            sort: true,
            filter: true,
            add: true,
            edit: true,
            required: true
        },
        {
            key: 'cleaner',
            filterKey: 'cleaner__icontains',
            label: 'Cleaner',
            className: 'col-md-4',
            value: '',
            filter: true,
            sort: true,
            add: true,
            edit: true,
            required: true
        },
        {
            key: 'wifi_password',
            label: 'WIFI Password',
            value: 'No details provided.',
            hide: true,
            add: true,
            edit: true,
            className: 'col-md-4',
        },
        {
            key: 'expected_month_sale',
            label: 'Expected Monthly Sale',
            value: 0,
            add: true,
            hide: true,
            edit: true,
            inputType: 'number',
            className: 'col-md-4',
        },
        {
            key: 'nearest_station',
            label: 'Nearest Station',
            value: 'No details provided.',
            className: 'col-md-4',
            add: true,
            hide: true,
            edit: true
        },
        {
            key: 'nearest_station_exit',
            label: 'Nearest Station Exit',
            value: 'No details provided.',
            className: 'col-md-4',
            add: true,
            hide: true,
            edit: true
        },
        {
            key: 'mins_for_walking',
            label: 'Walking Distance (Min.)',
            value: 0,
            className: 'col-md-4',
            inputType: 'number',
            min: 0,
            max: 99999999,
            add: true,
            hide: true,
            edit: true,
        },
        {
            key: 'color_code',
            label: 'Color Code',
            value: '',
            add: true,
            hide: true,
            edit: true,
            inputType: 'compactpicker'
        },
        {key: 'media_link', label: 'Media Link', value: '', add: true, hide: true, edit: true},
        {key: 'bed_num', label: 'Number of Beds', value: '', add: true, hide: true, edit: true, className: 'col-md-4',},
        {
            key: 'max_guest_num',
            label: 'Max Guest Number (1-50)',
            value: 0,
            inputType: 'number',
            min: 1,
            max: 50,
            className: 'col-md-4',
            add: true,
            hide: true,
            edit: true
        },
        {
            key: 'cover_square', label: 'Room Size', value: 0, className: 'col-md-4', add: true, hide: true,
            edit: true, inputType: 'number'
        },
        {
            key: 'room_equipment',
            label: 'Room Equipment',
            value: '',
            inputType: 'select',
            multiple: true,
            edit: true,
            add: true,
            sort: true,
            options: config.ROOM_DEVICE,

        },
        {
            key: 'standard_clean_fee',
            label: 'Standard Clean Fee',
            className: 'col-md-4',
            value: 0,
            filter: true,
            sort: true,
            add: true,
            edit: true,
            inputType: 'number',
        },
        {
            key: 'internal_clean_cost',
            label: 'Internal Clean Cost',
            className: 'col-md-4',
            value: '',
            filter: true,
            sort: true,
            add: true,
            edit: true
        },
        {
            key: 'internal_clean_fee',
            label: 'Internal Clean Fee',
            className: 'col-md-4',
            value: '',
            filter: true,
            sort: true,
            add: true,
            edit: true
        },
        {
            key: 'comment',
            filterKey: 'comment__icontains',
            label: 'Internal Comment',
            value: '',
            inputType: 'textarea',
            filter: true,
            sort: true,
            add: true,
            edit: true
        },
        {
            key: 'auto_disabled',
            'value': true,
            'label': 'Auto Block Calendar Dates 6 Months in the Future',
            'inputType': 'reversecheckbox',
            add: true,
            hide: true,
            edit: true
        },
        {
            key: 'requires_key_delivery',
            'value': true,
            'label': 'Requires Key Delivery',
            'inputType': 'checkbox',
            add: true,
            hide: true,
            edit: true
        },
        {
            key: 'license_type',
            label: "License Type",
            value: 'No License',
            className: 'col-md-6',
            add: true,
            hide: true,
            edit: true
        },
        {
            key: 'license_number',
            label: "License Number",
            value: 'No License',
            className: 'col-md-6',
            add: true,
            hide: true,
            edit: true
        },
        {
            key: 'key_information',
            label: "Key Information",
            value: 'No details provided.',
            add: true,
            hide: true,
            edit: true
        },
        {
            key: 'parking_information',
            label: "Parking Information",
            value: 'No details provided.',
            add: true,
            hide: true,
            edit: true
        },
        {
            key: 'bath_information',
            label: "Bath Information",
            value: 'No details provided.',
            add: true,
            hide: true,
            edit: true
        },
        {
            key: 'trash_disposal_information',
            label: 'Trash Disposal Information',
            value: 'No details provided.',
            add: true,
            hide: true,
            edit: true
        },
        {
            key: 'availability',
            label: 'Availability',
            value: '',
            inputType: 'select',
            options: [
                {label: 'GENERAL', value: 'GENERAL'},
                {label: 'PARTIAL', value: 'PARTIAL'},
                {label: 'DISCONTINUED', value: 'DISCONTINUED'},
            ],
            filter: true,
            add: true,
            hide: true,
            edit: true
        },
        {
            key: 'locality',
            filterKey: 'locality__icontains',
            label: 'Provice/State/Ward',
            value: '',
            filter: true,
            sort: true,
            add: true,
            hide: true,
            edit: true
        },
        {
            key: 'gps_coordinates',
            filterKey: 'gps_coordinates__icontains',
            label: 'GPS Coordinates (lat, lng)',
            inputType: 'tags',
            value: '',
            filter: true,
            sort: true,
            add: true,
            hide: true,
            edit: true
        },
        {
            key: 'room_title',
            filterKey: 'room_title__icontains',
            label: 'Room Title',
            value: '',
            filter: true,
            sort: true,
            add: true,
            hide: true,
            edit: true
        },
        {
            key: 'room_description',
            filterKey: 'room_description__icontains',
            label: 'Room Description',
            value: '',
            inputType: 'textarea',
            filter: true,
            sort: true,
            add: true,
            hide: true,
            edit: true
        },
        {
            label: 'Standard Price', key: 'standard_price', value: '', hide: true,
            sort: false, filter: false, edit: true, add: true, required: false,
            inputType: 'money', currencyOptions: config.CURRENCY,
            currencyKey: 'standard_currency', currencyVal: ''
        },
    ],
  /*2020.03.05 Mr.wang Add START*/
  'PhysicalRoomReviews': [
    {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
    {
      label: 'Site', key: 'related_order.platform', filterKey: 'related_order.platform', sortKey: 'related_order.platform',
      value: '', sort: true, filter: true, edit: false, add: true, required: true
    },{
      label: 'Date', key: 'related_order.checkout', filterKey: 'related_order.checkout', sortKey: 'related_order.checkout',
      value: '', sort: true, filter: true, edit: false, add: true, required: true
    },{
      label: 'Attribution', key: 'related_order.logical_room__physical_room_id', filterKey: 'related_order.logical_room__physical_room_id', sortKey: 'related_order.logical_room__physical_room_id',
      value: '', sort: true, filter: true, edit: false, add: true, required: true
    },{
      label: 'Rating', key: 'the_other_review.overall_rating', filterKey: 'the_other_review.overall_rating', sortKey: 'the_other_review.overall_rating',
      value: '', sort: true, filter: true, edit: false, add: true, required: true
    },{
      label: 'Review', key: 'the_other_review.public_review', filterKey: 'the_other_review.public_review', sortKey: 'the_other_review.public_review',
      value: '', sort: true, filter: false, edit: false, add: true, required: true, extCls:'row-review'
    },{
      label: 'Status', key: 'has_invited',  sortKey: 'has_invited',
      value: '', sort: true, filter: false, edit: false, add: true, required: true
    },{
      label: 'Operator', key: 'operator', filterKey: 'operator', sortKey: 'operator',
      value: '', sort: true, filter: true, edit: false, add: true, required: true
    }
    ],
  'FunkeyWorkerTaskList': [
    {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
    {
      label: 'Action', key: 'action_name', filterKey: 'action_name', sortKey: 'action_name',
      value: '', sort: true, filter: true, edit: false, add: true, required: true
    },{
      label: 'Operator', key: 'operator', filterKey: 'operator', sortKey: 'operator',
      value: '', sort: true, filter: true, edit: false, add: true, required: true
    },{
      label: 'PID', key: 'physical_room_id', filterKey: 'physical_room_id', sortKey: 'physical_room_id',
      value: '', sort: true, filter: true, edit: false, add: true, required: true
    },{
      label: 'LID', key: 'logical_room_id', filterKey: 'logical_room_id', sortKey: 'logical_room_id',
      value: '', sort: true, filter: true, edit: false, add: true, required: true
    },{
      label: 'Reservation', key: 'reservation_code', filterKey: 'reservation_code', sortKey: 'reservation_code',
      value: '', sort: true, filter: true, edit: false, add: true, required: true
    },{
      label: 'Create on', key: 'created_on', filterKey: 'created_on', sortKey: 'created_on',
      value: '', sort: true, filter: true, edit: false, add: true, required: true
    },{
      label: 'Status', key: 'status', filterKey: 'status', sortKey: 'status',
      value: '', sort: true, filter: true, edit: false, add: true, required: true
    },{
      label: 'Completed time', key: 'completed_on', filterKey: 'completed_on', sortKey: 'completed_on',
      value: '', sort: true, filter: true, edit: false, add: true, required: true
    },{
      label: 'Result', key: 'result', filterKey: 'result', sortKey: 'result',
      value: '', sort: true, filter: true, edit: false, add: true, required: true
    },{
      label: 'Read', key: 'is_hidden', filterKey: 'is_hidden', sortKey: 'is_hidden',
      value: '', sort: true, filter: true, edit: false, add: true, required: true
    }
    ],
  'PhysicalRoomListing-V2': [
    {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
    {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
    {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
    {
      label: 'PID',
      key: 'physical_room_hook',
      filterKey: 'physical_room__physical_room_id',
      sortKey: 'physical_room__physical_room_id',
      value: '',
      sort: true,
      filter: true,
      edit: false,
      add: true,
      required: true
    },
    {
      label: 'Listing ID',
      key: 'listing_id',
      filterKey: 'listing_id',
      sortKey: 'listing_id',
      value: '',
      sort: true,
      filter: true,
      edit: false,
      add: true,
      required: true
    },
    {
      label: 'Sync Category',
      key: 'synchronization_category',
      filterKey: 'synchronization_category',
      sortKey: 'synchronization_category',
      value: 'sync_all',
      inputType: 'normalSelect',
      options: [
        {"label": "Sync All", "value": "sync_all"},
        {"label": "Undecided", "value": "sync_undecided"},
        {"label": "Partial", "value": "sync_rates_and_availability"},
        {"label": "Stopped", "value": "stopped"}
      ],
      sort: true,
      filter: true,
      edit: true,
      add: true,
      required: true
    },
    {
      label: 'Listing Title',
      key: 'name',
      filterKey: 'name',
      sortKey: 'name',
      inputType: "text",
      value: '',
      sort: true,
      filter: true,
      edit: true,
      add: true,
      required: true
    },
    {
      label: 'Property Type Group',
      key: 'property_type_group',
      filterKey: 'property_type_group',
      sortKey: 'property_type_group',
      value: '',
      inputType: 'normalSelect',
      options: [
        {"label": "Apartment", "value": "apartments"},
        {"label": "BnB", "value": "bnb"},
        {"label": "Boutique Hotel", "value": "boutique_hotels_and_more"},
        {"label": "House", "value": "houses"},
        {"label": "Secondary Unit", "value": "secondary_units"},
        {"label": "Unique Home", "value": "unique_homes"},
      ],
      sort: true,
      filter: true,
      edit: true,
      add: true,
      required: true
    },
    {
      label: 'Property Type Category',
      key: 'property_type_category',
      filterKey: 'property_type_category',
      sortKey: 'property_type_category',
      value: '',
      inputType: 'normalSelect',
      options: [
        {"label": "---Apartments---", "value": "-", "disabled": true},
        {"label": "Apartment", "value": "apartment"},
        {"label": "Condominium", "value": "condominium"},
        {"label": "Loft", "value": "loft"},
        {"label": "---Houses---", "value": "-", "disabled": true},
        {"label": "House", "value": "house"},
        {"label": "Villa", "value": "villa"},
        {"label": "---BnB---", "value": "-", "disabled": true},
        {"label": "Ryokan", "value": "ryokan"},
        {"label": "---Hotels---", "value": "-", "disabled": true},
        {"label": "Hostel", "value": "hostel"},
        {"label": "Hotel", "value": "hotel"},
      ],
      sort: true,
      filter: true,
      edit: true,
      add: true,
      required: false
    },
    {
      label: 'Room Type Category',
      key: 'room_type_category',
      filterKey: 'room_type_category',
      sortKey: 'room_type_category',
      value: '',
      inputType: 'normalSelect',
      options: [
        {"label": "Private Room", "value": "private_room"},
        {"label": "Entire Home", "value": "entire_home"},
        {"label": "Shared Room", "value": "shared_room"},
      ],
      sort: true,
      filter: true,
      edit: true,
      add: true,
      required: true
    },
    {
      label: 'Amenities',
      key: 'amenity_categories_hook',
      filterKey: 'amenity_categories_hook',
      sortKey: 'amenity_categories_hook',
      value: '',
      inputType: 'text',
      sort: false,
      filter: false,
      edit: true,
      add: true,
      required: true
    },
    {
      label: 'Number of Bedrooms',
      key: 'bedrooms',
      filterKey: 'bedrooms',
      sortKey: 'bedrooms',
      value: '',
      inputType: 'number',
      sort: true,
      filter: true,
      edit: true,
      add: true,
      required: true
    },

    {
      label: 'Number of Bathrooms',
      key: 'bathrooms',
      filterKey: 'bathrooms',
      sortKey: 'bathrooms',
      value: '',
      inputType: 'number',
      sort: true,
      filter: true,
      edit: true,
      add: true,
      required: true
    },

    {
      label: 'Number of Beds',
      key: 'beds',
      filterKey: 'beds',
      sortKey: 'beds',
      value: '',
      inputType: 'number',
      sort: true,
      filter: true,
      edit: true,
      add: true,
      required: true
    },
    {
      label: 'Permit/Tax ID',
      key: 'permit_or_tax_id',
      filterKey: 'permit_or_tax_id',
      sortKey: 'permit_or_tax_id',
      value: '',
      inputType: 'text',
      sort: true,
      filter: true,
      edit: true,
      add: true,
      required: false
    },
    {
      label: 'Apartment Number',
      key: 'apt',
      filterKey: 'apt',
      sortKey: 'apt',
      value: '',
      inputType: 'text',
      sort: true,
      filter: true,
      edit: true,
      add: true,
      required: false
    },
    {
      label: 'Street Address',
      key: 'street',
      filterKey: 'street',
      sortKey: 'street',
      value: '',
      inputType: 'text',
      sort: true,
      filter: true,
      edit: true,
      add: true,
      required: true
    },
    {
      label: 'City',
      key: 'city',
      filterKey: 'city',
      sortKey: 'city',
      value: '',
      inputType: 'text',
      sort: true,
      filter: true,
      edit: false,
      add: true,
      required: true
    },
    {
      label: 'State/Province',
      key: 'state',
      filterKey: 'state',
      sortKey: 'state',
      value: '',
      inputType: 'text',
      sort: true,
      filter: true,
      edit: false,
      add: true,
      required: true
    },
    {
      label: 'Postal Code',
      key: 'zipcode',
      filterKey: 'zipcode',
      sortKey: 'zipcode',
      value: '',
      inputType: 'text',
      sort: true,
      filter: true,
      edit: true,
      add: true,
      required: true
    },
    {
      label: 'Country Code',
      key: 'country_code',
      filterKey: 'country_code',
      sortKey: 'country_code',
      value: '',
      inputType: 'normalSelect',
      options: [
        {"label": "Japan", "value": "JP"},
        {"label": "China", "value": "CN"},
        {"label": "Thailand", "value": "TH"},
        {"label": "Malaysia", "value": "MY"},
      ],
      sort: true,
      filter: true,
      edit: false,
      add: true,
      required: true
    },
    {
      label: 'Latitude',
      key: 'lat',
      filterKey: 'lat',
      sortKey: 'lat',
      value: '',
      inputType: 'number',
      sort: false,
      filter: false,
      edit: true,
      add: true,
      required: true
    },
    {
      label: "Longitude",
      key: 'lng',
      filterKey: 'lng',
      sortKey: 'lng',
      value: '',
      inputType: 'number',
      sort: false,
      filter: false,
      edit: true,
      add: true,
      required: true
    },
    {
      label: 'Check-in Directions',
      key: 'directions',
      filterKey: 'directions',
      sortKey: 'directions',
      value: '',
      inputType: 'textarea',
      sort: false,
      filter: false,
      edit: true,
      add: true,
      required: true
    },
    {
      label: 'Max Guest Number',
      key: 'person_capacity',
      filterKey: 'person_capacity',
      sortKey: 'person_capacity',
      value: '',
      inputType: 'number',
      sort: true,
      filter: true,
      edit: true,
      add: true,
      required: true
    },
    {
      label: 'Listing Currency',
      key: 'listing_currency',
      filterKey: 'listing_currency',
      sortKey: 'listing_currency',
      value: '',
      inputType: 'text',
      sort: false,
      filter: true,
      edit: true,
      add: true,
      required: true
    },
    {
      label: 'Listing Price',
      key: 'listing_price',
      filterKey: 'listing_price',
      sortKey: 'listing_price',
      value: '',
      inputType: 'number',
      sort: true,
      filter: true,
      edit: true,
      add: true,
      required: true
    },
    {
      label: 'Check-in Method',
      key: 'check_in_option_category',
      filterKey: 'check_in_option_category',
      sortKey: 'check_in_option_category',
      value: '',
      inputType: 'normalSelect',
      options: [
        {"label": "Doorman", "value": "doorman_entry"},
        {"label": "Lockbox", "value": "lockbox"},
        {"label": "Smartlock", "value": "smartlock"},
        {"label": "Keypad", "value": "keypad"},
        {"label": "Host", "value": "host_checkin"},
        {"label": "Other", "value": "other_checkin"},
      ],
      sort: true,
      filter: true,
      edit: true,
      add: true,
      required: true
    },
    {
      label: 'Check-in Option Instructions',
      key: 'check_in_option_instruction',
      filterKey: 'check_in_option_instruction',
      sortKey: 'check_in_option_instruction',
      value: '',
      inputType: 'textarea',
      sort: false,
      filter: false,
      edit: true,
      add: true,
      required: true
    },
    {
      label: 'Total Inventory Count',
      key: 'total_inventory_count',
      filterKey: 'check_in_option_instruction',
      sortKey: 'check_in_option_instruction',
      value: '',
      inputType: 'number',
      sort: false,
      filter: false,
      edit: true,
      add: true,
      required: false
    },
    {
      label: 'Property External ID',
      key: 'property_external_id',
      filterKey: 'check_in_option_instruction',
      sortKey: 'check_in_option_instruction',
      value: '',
      inputType: 'text',
      sort: false,
      filter: true,
      edit: true,
      add: true,
      required: false
    },
    {
      label: 'Approval Status',
      key: 'requested_approval_status_category',
      filterKey: 'requested_approval_status_category',
      sortKey: 'requested_approval_status_category',
      value: '',
      inputType: 'text',
      sort: false,
      filter: true,
      edit: false,
      add: false,
      required: false
    },
  ],

    'GuestRegistration': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'id', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'Is Representative',
            key: 'is_guest_representative',
            inputType: 'checkbox',
            value: '',
            add: true,
            sort: false,
            edit: true,
            filter: true,
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {
            label: 'Reservation Code',
            key: 'reservation_code',
            filterKey: 'reservation_code__icontains',
            required: true,
            value: '',
            add: true,
            sort: true,
            filter: true,
            edit: true
        },
        {
            label: 'Check-in Time',
            key: 'check_in_time',
            inputType: 'datetimepicker',
            filterInputType: 'dateTimeRange',
            value: '',
            required: true,
            sort: true,
            filter: true,
            edit: true,
            add: true
        },
        {
            label: 'Check-out Time',
            key: 'check_out_time',
            required: true,
            value: '',
            sort: true,
            edit: true,
            filter: true,
            add: true,
            inputType: 'datetimepicker',
            filterInputType: 'dateTimeRange'
        },
        {
            label: 'Last Name',
            key: 'guest_last_name_localized',
            filterKey: 'guest_last_name_localized__icontains',
            className: 'col-md-5',
            value: 'unknown',
            sort: true,
            filter: true,
            add: true,
            edit: true
        },
        {
            label: 'First Name',
            key: 'guest_name_localized',
            filterKey: ' guest_name_localized__icontains',
            className: 'col-md-5',
            value: 'unknown',
            add: true,
            sort: true,
            filter: true,
            edit: true
        },
        // {
        //     label: '拼音-姓',
        //     key: 'guest_last_name',
        //     filterKey: 'guest_last_name__icontains',
        //     className: 'col-md-5',
        //     value: '',
        //     sort: true,
        //     filter: true,
        //     edit: true
        // },
        // {
        //     label: '拼音-名',
        //     key: 'guest_name',
        //     filterKey: ' guest_name__icontains',
        //     className: 'col-md-5',
        //     value: '',
        //     sort: true,
        //     filter: true,
        //     edit: true
        // },
        {
            label: 'Address',
            key: 'guest_permanent_address',
            filterKey: 'guest_permanent_address__icontains',
            value: 'unknown',
            add: true,
            sort: true,
            filter: true,
            edit: true
        },
        {
            label: 'Occupation',
            key: 'guest_occupation',
            filterKey: 'guest_occupation__icontains',
            className: 'col-md-4',
            // inputType: 'normalSelect',
            // options: [
            //     {"label": "公务员 Civil servant 公務員", "value": "公务员 Civil servant 公務員"},
            //     {"label": "公司经营 Company management 会社経営者", "value": "公司经营 Company management 会社経営者"},
            //     {"label": "公司职员 Company employee 社員", "value": "公司职员 Company employee 社員"},
            //     {"label": "自营业 Self business 自営", "value": "自营业 Self business 自営"},
            //     {"label": "学生 Student 学生", "value": "学生 Student 学生"},
            //     {"label": "兼职 Part-time アルバイト・パートナー", "value": "兼职 Part-time アルバイト・パートナー"},
            //     {"label": "专业主妇 Housewife 主婦", "value": "专业主妇 Housewife 主婦"},
            //     {"label": "无职业 Inoccupation 無職", "value": "无职业 Inoccupation 無職"},
            //     {"label": "其他 Other その他", "value": "其他 Other その他"},
            // ],
            value: 'unknown',
            sort: true,
            filter: true,
            add: true,
            edit: true
        },
        {
            label: 'Nationality',
            key: 'guest_nationality',
            className: 'col-md-4',
            filterKey: 'guest_nationality__icontains',
            value: 'unknown',
            sort: true,
            add: true,
            filter: true,
            edit: true
        },
        {
            label: 'Passport Number',
            key: 'guest_passport_number',
            filterKey: 'guest_passport_number__icontains',
            value: 'unknown',
            className: 'col-md-4',
            add: true,
            sort: true,
            filter: true,
            edit: true
        },
        {
            label: 'Previous Place of Stay',
            key: 'previous_place_of_stay',
            filterKey: 'previous_place_of_stay__icontains',
            value: 'unknown',
            sort: true,
            add: true,
            filter: true,
            edit: true
        },
        {
            label: 'Next Destination',
            key: 'next_destination',
            filterKey: 'next_destination__icontains',
            value: 'unknown',
            sort: true,
            add: true,
            filter: true,
            edit: true
        },
        {
            label: 'Number of Guests',
            key: 'number_of_guests',
            className: 'col-md-4',
            inputType: 'number',
            value: '1',
            sort: true,
            add: true,
            filter: false,
            edit: true
        },
        {
            label: 'Platform',
            key: 'platform',
            //inputType: 'normalSelect',
            //options: config.PLATFORM,
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            className: 'col-md-4'
        },
        {
            label: 'Type of Travel',
            key: 'type_of_travel',
            value: 'unknown',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            className: 'col-md-4'
        },
        // {label: '护照', key: 'guest_travel_document_files', value: '', sort: false, filter: false, edit: false},
    ],
    'ThailandGuestRegistration': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'id', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'Is Representative',
            key: 'is_guest_representative',
            inputType: 'checkbox',
            className: 'col-md-6',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true,
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {
            label: 'Visa on Arrival',
            className: 'col-md-6',
            key: 'visa_on_arrival',
            inputType: 'checkbox',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            filterInputType: 'select',
            add: true,
            options: config.BOOL_SELECT
        },
        {
            label: 'Reservation Code',
            key: 'reservation_code',
            filterKey: 'reservation_code__icontains',
            value: '',
            className: 'col-md-6',
            required: true,
            sort: true,
            filter: true,
            add: true,
            edit: true
        },
        {
            label: 'Number of Guests',
            key: 'number_of_guests',
            required: true,
            className: 'col-md-6',
            inputType: 'number',
            value: '1',
            sort: true,
            filter: false,
            add: true,
            edit: true
        },
        {
            label: 'Last Name',
            key: 'guest_last_name',
            filterKey: 'guest_last_name__icontains',
            className: 'col-md-6',
            value: 'unknown',
            sort: true,
            filter: true,
            add: true,
            edit: true
        },
        {
            label: 'First Name',
            key: 'guest_name',
            filterKey: ' guest_name__icontains',
            className: 'col-md-6',
            value: 'unknown',
            add: true,
            sort: true,
            filter: true,
            edit: true
        },
        {
            label: 'Flight Arrival Time',
            key: 'flight_arrival_time',
            className: 'col-md-8',
            value: '',
            required: true,
            add: true,
            sort: true,
            edit: true,
            filter: true,
            inputType: 'datetimepicker',
            filterInputType: 'dateTimeRange'
        },
        {
            label: 'Flight No.',
            key: 'flight_no',
            filterKey: 'flight_no__icontains',
            value: 'unknown',
            className: 'col-md-4',
            add: true,
            sort: true,
            filter: true,
            edit: true
        },
        {
            label: 'Arrival Airport',
            key: 'platform',
            inputType: 'normalSelect',
            options: [
                {"label": "Suvarnabhumi Airport 素万那普机场", "value": "Suvarnabhumi Airport 素万那普机场"},
                {"label": "Don Mueang Airport 廊曼机场", "value": "Don Mueang Airport 廊曼机场"},
                {"label": "None 无", "value": "None 无"}
            ],
            value: 'None 无',
            sort: true,
            filter: true,
            edit: true,
            add: true
        },
        {
            label: 'Estimated time of arrival at the apartment',
            key: 'check_in_time',
            inputType: 'datetimepicker',
            filterInputType: 'dateTimeRange',
            value: '',
            required: true,
            add: true,
            sort: true,
            filter: true,
            edit: true
        },
        {
            label: 'IM Account',
            key: 'im_account',
            filterKey: 'im_account__icontains',
            value: 'unknown',
            add: true,
            sort: false,
            edit: true,
            filter: true,
            inputType: 'box',
            selectOptions: config.CONTACT_TOOLS,
            selectedVal: 'other'
        },
        {
            label: 'Nationality',
            key: 'guest_nationality',
            filterKey: 'guest_nationality__icontains',
            value: 'unknown',
            sort: true,
            filter: true,
            add: true,
            edit: true,
        },
        {
            label: 'Selfie',
            key: 'selfie__link',
            value: '',
            sort: false,
            filter: false,
            edit: true,
            hide: true,
            inputType: 'imgBox'
        },
        {
            label: 'Passport',
            key: 'passport__link',
            value: '',
            sort: false,
            filter: false,
            edit: true,
            hide: true,
            inputType: 'imgBox'
        },
    ],
    'Order': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'id', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'Gen. Time',
            key: 'gentime',
            value: '',
            sort: true,
            edit: true,
            filter: true,
            inputType: 'datetime',
            filterInputType: 'dateTimeRangeUTC'
        },
        {
            label: 'Host Name',
            filterKey: 'logical_room__physical_room__host_name',
            key: 'logical_room__physical_room__host_name',
            value: '',
            className: 'col-md-6',
            sort: true,
            edit: false,
            filter: true
        },
        {
            label: 'Cleaner',
            filterKey: 'logical_room__physical_room__cleaner__icontains',
            key: 'logical_room__physical_room__cleaner',
            className: 'col-md-6',
            value: '',
            sort: true,
            edit: false,
            filter: true
        },
        {
            label: 'PID',
            key: 'logical_room__physical_room_id',
            filterKey: 'logical_room__physical_room_id__icontains',
            className: 'col-md-6',
            value: '',
            sort: true,
            edit: false,
            filter: true
        },
        {
            label: 'LID',
            filterKey: 'logical_room__logical_room_id',
            key: 'logical_room_id_hook',
            value: '',
            className: 'col-md-6',
            sort: false,
            edit: true,
            filter: true
        },
        {
            label: 'Reservation Code',
            key: 'reservation_code',
            value: '',
            sort: true,
            edit: true,
            filter: true,
            defaultFilter: true,
            className: 'col-md-6',
        },
        {
            label: 'Order From',
            filterKey: 'order_from__icontains',
            key: 'order_from',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            className: 'col-md-6',

        },
        {
            label: 'Check-in',
            key: 'checkin',
            value: '',
            className: 'col-md-6',
            sort: true,
            edit: true,
            filter: true,
            inputType: 'date',
            filterInputType: 'dateRange'
        },
        {
            label: 'Check-out',
            key: 'checkout',
            className: 'col-md-6',
            value: '',
            sort: true,
            edit: true,
            filter: true,
            inputType: 'date',
            filterInputType: 'dateRange'
        },
        {
            label: 'Check-in Time',
            key: 'checkin_time',
            value: '',
            sort: true,
            edit: true,
            filter: true,
            inputType: 'datetimepicker',
            filterInputType: 'dateTimeRange',
        },
        {
            label: 'Check-out Time',
            key: 'checkout_time',
            value: '',
            sort: true,
            edit: true,
            filter: true,
            inputType: 'datetimepicker',
            filterInputType: 'dateTimeRange',
        },
        {
            label: 'Status', key: 'status', value: 'NORMAL', sort: false, edit: true, filter: true,
            inputType: 'select', options: [
                {label: 'NORMAL', value: 'NORMAL'},
                {label: 'FREE', value: 'FREE'},
                {label: 'SPECIAL', value: 'SPECIAL'},
                {label: 'HALF_PRICE', value: 'HALF_PRICE'},
                {label: 'HOST', value: 'HOST'},
                {label: 'BNB_ALT', value: 'BNB_ALT'},
                {label: 'CANCEL_PRE', value: 'CANCEL_PRE'},
            ]
        },
        {
            label: 'Guest Name',
            key: 'guest_name',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            className: 'col-md-4'
        },
        {label: 'Guest Num.', key: 'guest_num', value: '', sort: false, edit: true, filter: true, className: 'col-md-4'},
        {
            label: 'Nationality',
            key: 'guest_nationality',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            className: 'col-md-4',
            hide: true
        },
        {
            label: 'Flight Arrival Time',
            key: 'flight_arrival_time',
            inputType: 'datetimepicker',
            filterInputType: 'dateTimeRange',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            hide: true,
            className: 'col-md-4'
        },
        {
            label: 'Flight No.',
            key: 'flight_no',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            hide: true,
            className: 'col-md-4'
        },
        {
            label: 'Arrival Airport',
            key: 'arriving_airport',
            filterKey: 'arriving_airport__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            className: 'col-md-4'
        },
        {
            label: 'Visa on Landing',
            key: 'is_visa_on_landing',
            inputType: 'checkbox',
            value: '',
            sort: false,
            edit: true,
            filter: false,
            hide: true,
            //className: 'col-md-4'
        },
        {
            label: 'Guest Contant',
            key: 'guest_contact',
            filterKey: 'guest_contact__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            inputType: 'box',
            selectOptions: config.CONTACT_TOOLS,
            selectedVal: ''
        },
        {
            label: 'Actual Physical Room',
            key: 'actual_physical_room',
            updateKey: 'actual_physical_room',
            value: '',
            sort: false,
            filter: false,
            edit: true,
            add: true,
            hide: true,
            inputType: 'myselect',
            options: [],
            ajax: getAjaxConf('PhysicalRoom', 'id', 'physical_room_id'),
            minimumInputLength: 2,
        },
        {
            label: 'Service Fee',
            key: 'service_fee',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            className: 'col-md-4'
        },
        {label: 'Clean Fee', key: 'clean_fee', value: '', sort: false, edit: true, filter: true, className: 'col-md-4'},
        {
            label: 'total_cost',
            key: 'total_cost',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            className: 'col-md-4'
        },
        {
            label: 'Currency',
            key: 'currency',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true,
            inputType: 'select',
            options: config.CURRENCY,
        },
        {
            label: 'Room Title',
            filterKey: 'room_title__icontains',
            key: 'room_title',
            value: '',
            sort: false,
            edit: true,
            filter: true
        },
        {
            label: 'Platform',
            key: 'platform',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            inputType: 'normalSelect',
            options: config.PLATFORM
        },
        {
            label: 'Location',
            key: 'location',
            value: '',
            hide: true,
            sort: false,
            edit: false,
            filter: false,
            inputType: "textarea"
        },
        {
            label: 'Comment',
            inputType: 'textarea',
            filterKey: 'comment__icontains',
            key: 'comment',
            value: '',
            sort: false,
            edit: true,
            filter: true
        },
        {
            label: 'External Comment',
            key: 'external_comment',
            filterKey: 'external_comment__icontains',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            inputType: 'inputSelect',
            options: config.EXTERNAL_COMMENT
        },
        {label: 'Collect', key: 'collect', value: '', sort: false, edit: true, filter: false},
        {
            label: 'City', key: 'logical_room__physical_room__room_area', value: '', sort: false, edit: false, filter: true, hide:false,hideInEdit: true
        },
        {
            label: "Guest Registrations Is NULL",
            key: "thailand_guest_registrations__isnull",
            rawFilter: true,
            filter: true,
            hide: true,
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {
            label: 'Shadow Mode',
            key: 'is_shadow',
            inputType: 'checkbox',
            value: true,
            add: true,
            sort: false,
            filter: true,
            edit: true,
            tdAlign: 'center',
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
    ],
    'Order2': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'id', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'Gen. Time',
            key: 'gentime',
            value: '',
            sort: true,
            edit: true,
            filter: true,
            inputType: 'datetime',
            filterInputType: 'dateTimeRangeUTC'
        },
        {
            label: 'PID',
            key: 'physical_room_id',
            value: '',
            sort: true,
            edit: false,
            filter: true
        },
        {
            label: 'LID',
            key: 'logical_room_id',
            value: '',
            sort: false,
            edit: true,
            filter: true
        },
        {label: 'Reservation Code', key: 'reservation_code', value: '', sort: true, edit: true, filter: true},
        {
            label: 'Check-in',
            key: 'checkin',
            value: '',
            sort: true,
            edit: true,
            filter: true,
            inputType: 'date',
            filterInputType: 'dateRange'
        },
        {
            label: 'Check-out',
            key: 'checkout',
            value: '',
            sort: true,
            edit: true,
            filter: true,
            inputType: 'date',
            filterInputType: 'dateRange'
        },
        {
            label: 'Status', key: 'status', value: 'NORMAL', sort: false, edit: true, filter: true,
            inputType: 'select', options: [
                {label: 'NORMAL', value: 'NORMAL'},
                {label: 'FREE', value: 'FREE'},
                {label: 'SPECIAL', value: 'SPECIAL'},
                {label: 'HALF_PRICE', value: 'HALF_PRICE'},
                {label: 'HOST', value: 'HOST'},
                {label: 'BNB_ALT', value: 'BNB_ALT'},
                {label: 'CANCEL_PRE', value: 'CANCEL_PRE'},
            ]
        },
        {
            label: 'Order From',
            filterKey: 'order_from__icontains',
            key: 'order_from',
            value: '',
            sort: false,
            edit: true,
            filter: true
        },
        {label: 'Guest Name', key: 'guest_name', value: '', sort: false, edit: true, filter: true},
        {label: 'Guest Num.', key: 'guest_num', value: '', sort: false, edit: true, filter: true},
        {label: 'Searvice Fee', key: 'service_fee', value: '', sort: false, edit: true, filter: true},
        {label: 'Clean Fee', key: 'clean_fee', value: '', sort: false, edit: true, filter: true},
        {label: 'Total Cost', key: 'total_cost', value: '', sort: false, edit: true, filter: true},
        {
            label: 'Currency',
            key: 'currency',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            add: true,
            inputType: 'select',
            options: config.CURRENCY
        },
        {
            label: 'Room Title',
            filterKey: 'room_title__icontains',
            key: 'room_title',
            value: '',
            sort: false,
            edit: true,
            filter: true
        },
        {label: 'Platform', key: 'platform', value: '', sort: false, edit: true, filter: true},
        {
            label: 'Comment',
            inputType: 'textarea',
            filterKey: 'comment__icontains',
            key: 'comment',
            value: '',
            sort: false,
            edit: true,
            filter: true
        },
        {
            label: 'External Comment',
            key: 'external_comment',
            value: '',
            sort: false,
            edit: true,
            filter: true,
            inputType: 'inputSelect',
            options: config.EXTERNAL_COMMENT
        },
        {label: 'Collect', key: 'collect', value: '', sort: false, edit: true, filter: true}
    ],
    'StatusOrder': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {
            label: 'Status', key: 'status', value: 'NORMAL', sort: false, edit: true, filter: true,
            inputType: 'select', options: [
                {label: 'NORMAL', value: 'NORMAL'},
                {label: 'FREE', value: 'FREE'},
                {label: 'SPECIAL', value: 'SPECIAL'},
                {label: 'HALF_PRICE', value: 'HALF_PRICE'},
                {label: 'HOST', value: 'HOST'},
                {label: 'BNB_ALT', value: 'BNB_ALT'},
                {label: 'CANCEL_PRE', value: 'CANCEL_PRE'},
            ]
        },
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'gentime',
            key: 'gentime',
            value: '',
            sort: true,
            edit: true,
            filter: true,
            inputType: 'datetime',
            filterInputType: 'dateTimeRangeUTC'
        },
        {
            label: 'LID',
            key: 'logical_room_id',
            value: '',
            sort: false,
            edit: true,
            filter: true
        },
        {label: 'Reservation Code', key: 'reservation_code', value: '', sort: true, edit: true, filter: true},
        {
            label: 'checkin',
            key: 'checkin',
            value: '',
            sort: true,
            edit: true,
            filter: true,
            inputType: 'date',
            filterInputType: 'dateRange'
        },
        {
            label: 'Check-out',
            key: 'checkout',
            value: '',
            sort: true,
            edit: true,
            filter: true,
            inputType: 'date',
            filterInputType: 'dateRange'
        },
        {
            label: 'Order From',
            filterKey: 'order_from__icontains',
            key: 'order_from',
            value: '',
            sort: false,
            edit: true,
            filter: true
        },
        {label: 'Guest Name', key: 'guest_name', value: '', sort: false, edit: true, filter: true},
        {label: 'Guest Num.', key: 'guest_num', value: '', sort: false, edit: true, filter: true},
        {label: 'Service Fee', key: 'service_fee', value: '', sort: false, edit: true, filter: true},
        {label: 'Clean Fee', key: 'clean_fee', value: '', sort: false, edit: true, filter: true},
        {label: 'Total Cost', key: 'total_cost', value: '', sort: false, edit: true, filter: true},
        {
            label: 'Currency',
            key: 'currency',
            value: '',
            sort: false,
            edit: true,
            add: true,
            filter: true,
            inputType: 'select',
            options: config.CURRENCY
        },
        {
            label: 'Room Title',
            filterKey: 'room_title__icontains',
            key: 'room_title',
            value: '',
            sort: false,
            edit: true,
            filter: true
        },
        {label: 'Platform', key: 'platform', value: '', sort: false, edit: true, filter: true},
        {
            label: 'comment',
            inputType: 'textarea',
            filterKey: 'comment__icontains',
            key: 'comment',
            value: '',
            sort: false,
            edit: true,
            filter: true
        },
        {label: 'External Comment', key: 'external_comment', value: '', sort: false, edit: true, filter: true},
        {label: 'Collect', key: 'collect', value: '', sort: false, edit: true, filter: true}
    ],
    'LogicalRoom': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'LID',
            key: 'logical_room_id',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true,
            defaultFilter: true
        },
        {
            label: 'PID',
            key: 'physical_room_id_hook',
            filterKey: 'physical_room_id__icontains',
            inputType: 'tags',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Account',
            filterKey: 'account__icontains',
            key: 'account',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Comment',
            key: 'comment',
            filterKey: 'comment__icontains',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            inputType: 'textarea'
        },
        {
            label: 'Platform',
            key: 'platform',
            filterKey: 'platform__icontains',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            inputType: 'select',
            options: ['homeaway', 'airbnb', 'agoda', 'asiayo', 'expedia',
                'booking', 'zizaike', 'zbj', 'tujia', 'onehomne', 'xiaozhu', 'host\'s offline']
        },
        {
            label: 'XZ Airbnb LID',
            key: 'xz_airbnb_lid',
            filterKey: 'xz_airbnb_lid__icontains',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true
        },
        {
            label: 'ZZK Room Title',
            key: 'zzk_room_title',
            filterKey: 'zzk_room_title__icontains',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true
        },
        {
            label: 'Active',
            key: 'is_active',
            inputType: 'checkbox',
            value: true,
            add: true,
            sort: false,
            filter: true,
            edit: true,
            tdAlign: 'center',
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {
            label: 'Shadow Mode',
            key: 'is_shadow_room',
            inputType: 'checkbox',
            value: true,
            add: true,
            sort: false,
            filter: true,
            edit: true,
            tdAlign: 'center',
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
    ],
    'Ical': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: 'ID', key: 'id', sort: true},
        {label: 'PID', key: 'physical_room_id', sort: true},
        {label: 'LID', key: 'logical_room_id', sort: true},
        {label: 'Check-in Date', key: 'check_in_date', sort: true},
        {label: 'Check-out Date', key: 'check_out_date', sort: true},
        {label: 'Raw', key: 'raw'},
        {label: 'Generated By', key: 'generated_by_id'},
    ],
    'OkumasanCleaner': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'Cleaner Name',
            key: 'okumasan_cleaner_name',
            value: '',
            sort: true,
            filter: true,
            defaultFilter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Cleaner Time',
            key: 'cleaner_time',
            value: '',
            sort: false,
            filter: true,
            edit: false,
            add: false,
            required: false,
            filterInputType: 'options'
        },
        {
            label: 'Email',
            key: 'email',
            filterKey: 'email__icontains',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: false
        },
        {
            label: 'Location #1',
            key: 'location1',
            filterKey: 'location1__icontains',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Location #2',
            key: 'location2',
            filterKey: 'location2__icontains',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {label: 'Level', key: 'level', value: '', sort: true, filter: true, edit: true, add: true},
    ],
    'CleanerBill': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '清扫名', key: 'cleaner_name', value: '', sort: true},
        {label: '退房日期', key: 'clean_date', value: '', sort: true},
        {label: '物理房源', key: 'physical_room_id', value: '', sort: true},
        {label: '房源地址', key: 'location', value: '', sort: true},
        {label: '清扫指派支出(已包含车费补贴)', key: 'cleaner_cost', value: '', sort: true},
        {label: '清扫报销', key: 'other_fee', value: '', sort: true},
        {label: '其他金额(包含清洗烘干费用)', key: 'cleaner_spending', value: '', sort: true},
        {label: '总共金额', key: 'total_cost', value: '', sort: true},
        {label: '备注', key: 'comment', value: '', sort: true},
    ],
    'OkmRoom': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: 'id', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'common_name',
            key: 'common_name',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
        {label: 'fix_price', key: 'fix_price', value: '', sort: true, filter: true, edit: true, add: true},
        {label: 'cost_price', key: 'cost_price', value: '', sort: true, filter: true, edit: true, add: true},
    ],
    'OtherExpenses': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'Date',
            key: 'date',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            filterInputType: 'dateTimeRange',
            inputType: 'datetime'
        },
        {
            label: 'PID',
            key: 'physical_room_physical_room_id_hook',
            filterKey: 'physical_room__physical_room_id',
            defaultFilter: true,
            sortKey: 'physical_room__physical_room_id',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
        {label: 'Cost', key: 'cost', value: '', sort: true, filter: true, edit: true, add: true, required: true},
        {
            label: 'Currency',
            key: 'currency',
            value: '',
            sort: false,
            edit: true,
            add: true,
            filter: true,
            inputType: 'select',
            options: config.CURRENCY,
            required: true
        },
        {
            label: 'Expense Type',
            key: 'expense_type',
            value: '',
            sort: false,
            edit: true,
            add: true,
            filter: true,
            inputType: 'select',
            options: [
                {label: 'Other', value: 'Other'},
                {label: 'Utility', value: 'Utility'},
                {label: 'Rent', value: 'Rent'}
            ],
            required: true
        },
        {
            label: 'Reservation Code',
            key: 'order_reservation_code_hook',
            filterKey: 'order__reservation_code',
            value: '',
            sort: false,
            filter: true,
            edit: true,
            add: true
        },
        {
            label: 'Items',
            key: 'items',
            filterKey: 'items__icontains',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            inputType: 'textarea',
        },
        {
            label: 'Reported by',
            key: 'reported_by',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            inputType: 'user'
        },
    ],
    'Transactions': [
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'transaction_time',
            key: 'transaction_time',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            filterInputType: 'dateTimeRange'
        },
        {
            label: 'bill_id',
            key: 'bill_id',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            defaultFilter: true
        },
        {
            label: 'amount', key: 'amount', value: '', sort: true, filter: true, edit: false, add: true,
            inputType: 'money', currencyOptions: config.CURRENCY, currencyKey: 'currency', currencyVal: ''
        },
        {
            label: 'fee_type',
            key: 'fee_type',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            filterInputType: 'select',
            inputType: 'select',
            options: [{label: 'other', value: 3}],
            filterOptions: [{label: 'heyakun', value: 1}, {label: 'okumasan', value: 2}, {label: 'other', value: 3}]
        },
        {label: 'fee_detail', key: 'fee_detail', value: '', sort: false, filter: false, edit: false, add: false,},
        {
            label: 'is_processed', key: 'is_processed', value: '', sort: false, filter: true, edit: false, add: false,
            inputType: 'checkbox', filterInputType: 'select', options: config.BOOL_SELECT
        },
        {
            label: 'comment',
            key: 'comment',
            filterKey: 'comment__icontains',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true
        },
    ],
    'Invoice': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: 'id', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'gentime',
            key: 'gentime',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            filterInputType: 'dateTimeRangeUTC'
        },
        {
            label: 'host_name',
            key: 'host__host_name',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            defaultFilter: true
        },
        {label: 'invoice_number', key: 'invoice_number', value: '', sort: true, filter: true, edit: false},
        {label: 'amount', key: 'amount', value: '', sort: true, filter: true, edit: false},
        {label: 'currency', key: 'currency', value: '', sort: true, filter: true, edit: false},
        {
            label: 'is_invalid', key: 'is_invalid', value: '', sort: true, filter: true, edit: false,
            filterInputType: 'select', options: config.BOOL_SELECT
        },
        {
            label: 'is_paid',
            key: 'is_paid',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {label: 'last_sent_time', key: 'last_sent_time', value: '', sort: true, filter: false, edit: false},
        {label: 'time_paid', key: 'time_paid', value: '', sort: true, filter: false, edit: false},
    ],
    'IcsUrl': [
        {label: 'title', key: 'title', add: true, edit: true},
        {label: 'url', key: 'url', add: true, edit: true},
    ],
    'SystemSettings': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: false, edit: false},
        {label: 'Name', key: 'name',value: '', sort: true, filter: true, edit: false, add:false, required: true},
        {label: 'Description', key: 'description',value: '', sort: true, filter: true, edit: false, add:false, required: true, inputType: 'textarea'},
        {label: 'Data', key: 'text',value: '', sort: true, filter: false, edit: true, add:false, inputType: 'textarea'},
    ],
    'PhysicalRoomListingDescription': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'PID',
            key: 'physical_room_hook',
            filterKey: 'physical_room__physical_room_id',
            sortKey: 'physical_room__physical_room_id',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
        {
            label: 'Locale',
            key: 'locale',
            filterKey: 'locale',
            sortKey: 'locale',
            value: '',
            inputType: 'normalSelect',
            options: [
                {"label": "Chinese", "value": "zh"},
                {"label": "Japanese", "value": "ja"},
                {"label": "English", "value": "en"},
            ],
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Listing Title',
            key: 'name',
            filterKey: 'name',
            sortKey: 'name',
            inputType: "text",
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'About Space',
            key: 'space',
            filterKey: 'space',
            sortKey: 'space',
            inputType: "textarea",
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'About Access',
            key: 'access',
            filterKey: 'accesse',
            sortKey: 'access',
            inputType: "textarea",
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Summary',
            key: 'summary',
            filterKey: 'summary',
            sortKey: 'summary',
            inputType: "textarea",
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'About Interaction',
            key: 'interaction',
            filterKey: 'interaction',
            sortKey: 'interaction',
            inputType: "textarea",
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Neighborhood Overview',
            key: 'neighborhood_overview',
            filterKey: 'neighborhood_overview',
            sortKey: 'neighborhood_overview',
            inputType: "textarea",
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Transit',
            key: 'transit',
            filterKey: 'transit',
            sortKey: 'transit',
            inputType: "textarea",
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Notes',
            key: 'notes',
            filterKey: 'notes',
            sortKey: 'notes',
            inputType: "textarea",
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'House Rules',
            key: 'house_rules',
            filterKey: 'house_rules',
            sortKey: 'house_rules',
            inputType: "textarea",
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
    ],
    'PhysicalRoomAmenityCategory':[
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'Name',
            key: 'name',
            filterKey: 'name',
            sortKey: 'name',
            value: '',
            inputType: 'text',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
        {
            label: 'Description',
            key: 'description',
            filterKey: 'description',
            sortKey: 'description',
            value: '',
            inputType: 'textarea',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
    ],
    'AirbnbUser': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'Host',
            key: 'user_hook',
            filterKey: 'user__host_name',
            sortKey: 'user__host_name',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
        {
            label: 'User ID',
            key: 'airbnb_user_id',
            filterKey: 'airbnb_user_id',
            sortKey: 'airbnb_user_id',
            value: '',
            inputType: 'text',
            sort: true,
            filter: true,
            edit: false,
            add: false,
            required: false
        },
        {
            label: 'Token',
            key: 'token',
            filterKey: 'token',
            sortKey: 'token',
            value: '',
            inputType: 'text',
            sort: true,
            filter: true,
            edit: false,
            add: false,
            required: false
        },
        {
            label: 'Refresh Token',
            key: 'refresh_token',
            filterKey: 'refresh_token',
            sortKey: 'refresh_token',
            value: '',
            inputType: 'text',
            sort: true,
            filter: true,
            edit: false,
            add: false,
            required: false
        },
        {
            label: '',
            key: 'expire_at',
            filterKey: 'expire_at',
            sortKey: 'expire_at',
            value: '',
            inputType: 'datetimepicker',
            sort: false,
            filter: true,
            edit: false,
            add: false,
            required: false
        },
    ],
    'PhysicalRoomPricingSetting':[
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'PID',
            key: 'physical_room_hook',
            filterKey: 'physical_room__physical_room_id',
            sortKey: 'physical_room__physical_room_id',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
        {
            label: 'Default Daily Price',
            key: 'default_daily_price',
            filterKey: 'default_daily_price',
            sortKey: 'default_daily_price',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Weekend Price',
            key: 'weekend_price',
            filterKey: 'weekend_price',
            sortKey: 'weekend_price',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Guests Included',
            key: 'guests_included',
            filterKey: 'guests_included',
            sortKey: 'guests_included',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Price per Extra Person',
            key: 'price_per_extra_person',
            filterKey: 'price_per_extra_person',
            sortKey: 'price_per_extra_person',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Monthly Price Factor',
            key: 'monthly_price_factor',
            filterKey: 'monthly_price_factor',
            sortKey: 'monthly_price_factor',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Weekly Price Factor',
            key: 'weekly_price_factor',
            filterKey: 'weekly_price_factor',
            sortKey: 'weekly_price_factor',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Cleaning Fee',
            key: 'cleaning_fee',
            filterKey: 'cleaning_fee',
            sortKey: 'cleaning_fee',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
    ],
    'PhysicalRoomSeasonalMinNights': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'Rule Name',
            key: 'rule_name',
            filterKey: 'rule_name',
            sortKey: 'rule_name',
            value: '',
            inputType: 'text',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Start Date',
            key: 'start_date',
            filterKey: 'start_date',
            sortKey: 'start_date',
            value: '',
            inputType: 'date',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'End Date',
            key: 'end_date',
            filterKey: 'end_date',
            sortKey: 'end_date',
            value: '',
            inputType: 'date',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Min Nights',
            key: 'min_nights',
            filterKey: 'min_nights',
            sortKey: 'min_nights',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
    ],
    'PhysicalRoomAvailabilityRule':[
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'PID',
            key: 'physical_room_hook',
            filterKey: 'physical_room__physical_room_id',
            sortKey: 'physical_room__physical_room_id',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
        {
            label: 'Advanced Notice Hours',
            key: 'advanced_notice_hours',
            filterKey: 'advanced_notice_hours',
            sortKey: 'advanced_notice_hours',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Advanced Notice Allow Request to Book',
            key: 'advanced_notice_allow_request_to_book',
            filterKey: 'advanced_notice_allow_request_to_book',
            sortKey: 'advanced_notice_allow_request_to_book',
            value: '',
            inputType: 'checkbox',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: false
        },
        {
            label: 'Distant Requests Days',
            key: 'distant_requests_days',
            filterKey: 'distant_requests_days',
            sortKey: 'distant_requests_days',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Turn-Over Days',
            key: 'turn_over_days',
            filterKey: 'turn_over_days',
            sortKey: 'turn_over_days',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Seasonal Min Nights Rules',
            key: 'seasonal_min_nights_hook',
            filterKey: 'seasonal_min_nights_hook',
            sortKey: 'seasonal_min_nights_hook',
            value: '',
            inputType: 'text',
            sort: false,
            filter: false,
            edit: true,
            add: true,
            required: false
        },
    ],
    'PhysicalRoomGuestControls':[
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'Allow Children',
            key: 'allows_children_as_host',
            filterKey: 'allows_children_as_host',
            sortKey: 'allows_children_as_host',
            value: '',
            inputType: 'checkbox',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: false
        },
        {
            label: 'Allow Infants',
            key: 'allows_infants_as_host',
            filterKey: 'allows_infants_as_host',
            sortKey: 'allows_infants_as_host',
            value: '',
            inputType: 'checkbox',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: false
        },
        {
            label: 'Children Not Allowed Details',
            key: 'children_not_allowed_details',
            filterKey: 'children_not_allowed_details',
            sortKey: 'children_not_allowed_details',
            value: '',
            inputType: 'text',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: false
        },
        {
            label: 'Allow Smoking',
            key: 'allows_smoking_as_host',
            filterKey: 'allows_smoking_as_host',
            sortKey: 'allows_smoking_as_host',
            value: '',
            inputType: 'checkbox',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: false
        },
        {
            label: 'Allow Pets',
            key: 'allows_pets_as_host',
            filterKey: 'allows_pets_as_host',
            sortKey: 'allows_pets_as_host',
            value: '',
            inputType: 'checkbox',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: false
        },
        {
            label: 'Allow Events',
            key: 'allows_events_as_host',
            filterKey: 'allows_events_as_host',
            sortKey: 'allows_events_as_host',
            value: '',
            inputType: 'checkbox',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: false
        },
    ],
    'PhysicalRoomBookingSettings':[
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'PID',
            key: 'physical_room_hook',
            filterKey: 'physical_room__physical_room_id',
            sortKey: 'physical_room__physical_room_id',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
        {
            label: 'Cancellation Policy Category',
            key: 'cancellation_policy_category',
            filterKey: 'cancellation_policy_category',
            sortKey: '',
            inputType: 'normalSelect',
            options: [
                {"label": "Flexible", "value": "flexible"},
                {"label": "Moderate", "value": "moderate"},
                {"label": "Strict 14", "value": "strict_14_with_grace_period"},
                {"label": "Super Strict 30", "value": "super_strict_30"},
                {"label": "Super Strict 60", "value": "super_strict_60"},
            ],
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Check-in Time Start',
            key: 'check_in_time_start',
            filterKey: 'check_in_time_start',
            sortKey: 'check_in_time_start',
            inputType: "text",
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Check-in Time End',
            key: 'check_in_time_end',
            filterKey: 'check_in_time_end',
            sortKey: 'check_in_time_end',
            inputType: "text",
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Check-out Time',
            key: 'check_out_time',
            filterKey: 'check_out_time',
            sortKey: 'check_out_time',
            inputType: "number",
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: '',
            key: 'instant_booking_allowed_category',
            filterKey: 'instant_booking_allowed_category',
            sortKey: 'instant_booking_allowed_category',
            inputType: 'normalSelect',
            options: [
                {"label": "Everyone", "value": "everyone"},
                {"label": "Experienced", "value": "experienced"},
                {"label": "Government ID", "value": "government_id"},
                {"label": "Experienced + Government ID", "value": "experienced_guest_with_government_id"},
            ],
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Instant Book Welcome Message',
            key: 'instant_book_welcome_message',
            filterKey: 'instant_book_welcome_message',
            sortKey: 'instant_book_welcome_message',
            inputType: "textarea",
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Listing Expectations for Guests',
            key: 'listing_expectations_for_guests_hook',
            filterKey: 'listing_expectations_for_guests_hook',
            sortKey: 'listing_expectations_for_guests_hook',
            inputType: "text",
            value: '',
            sort: false,
            filter: false,
            edit: true,
            add: true,
            required: false
        },
        {
            label: 'Guest Controls',
            key: 'guest_controls_hook',
            filterKey: 'guest_controls_hook',
            sortKey: 'guest_controls_hook',
            inputType: "text",
            value: '',
            sort: false,
            filter: false,
            edit: true,
            add: true,
            required: false
        },
    ],
    'PhysicalRoomListingExpectationsForGuests': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'Expectation',
            key: 'expectation_type',
            filterKey: 'expectation_type',
            sortKey: 'expectation_type',
            value: '',
            inputType: 'normalSelect',
            options: [
                {"label": "Requires Stairs", "value": "requires_stairs"},
                {"label": "Potential Noise", "value": "potential_noise"},
                {"label": "Has Pets", "value": "has_pets"},
                {"label": "Limited Parking", "value": "limited_parking"},
                {"label": "Shared Space", "value": "shared_spaces"},
                {"label": "Limited Amenities", "value": "limited_amenities"},
                {"label": "Surveillance", "value": "surveillance"},
                {"label": "Weapons", "value": "weapons"},
                {"label": "Animals", "value": "animals"},
            ],
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Added Details',
            key: 'added_details',
            filterKey: 'added_details',
            sortKey: 'added_details',
            value: '',
            inputType: 'text',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
    ],
    'PhysicalRoomListing': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'PID',
            key: 'physical_room_hook',
            filterKey: 'physical_room__physical_room_id',
            sortKey: 'physical_room__physical_room_id',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
        {
            label: 'Listing ID',
            key: 'listing_id',
            filterKey: 'listing_id',
            sortKey: 'listing_id',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
        {
            label: 'Sync Category',
            key: 'synchronization_category',
            filterKey: 'synchronization_category',
            sortKey: 'synchronization_category',
            value: 'sync_all',
            inputType: 'normalSelect',
            options: [
                {"label": "Sync All", "value": "sync_all"},
                {"label": "Undecided", "value": "sync_undecided"},
                {"label": "Partial", "value": "sync_rates_and_availability"},
                {"label": "Stopped", "value": "stopped"}
            ],
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Listing Title',
            key: 'name',
            filterKey: 'name',
            sortKey: 'name',
            inputType: "text",
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Property Type Group',
            key: 'property_type_group',
            filterKey: 'property_type_group',
            sortKey: 'property_type_group',
            value: '',
            inputType: 'normalSelect',
            options: [
                {"label": "Apartment", "value": "apartments"},
                {"label": "BnB", "value": "bnb"},
                {"label": "Boutique Hotel", "value": "boutique_hotels_and_more"},
                {"label": "House", "value": "houses"},
                {"label": "Secondary Unit", "value": "secondary_units"},
                {"label": "Unique Home", "value": "unique_homes"},
            ],
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Property Type Category',
            key: 'property_type_category',
            filterKey: 'property_type_category',
            sortKey: 'property_type_category',
            value: '',
            inputType: 'normalSelect',
            options: [
                {"label": "---Apartments---", "value": "-", "disabled": true},
                {"label": "Apartment", "value": "apartment"},
                {"label": "Condominium", "value": "condominium"},
                {"label": "Loft", "value": "loft"},
                {"label": "---Houses---", "value": "-", "disabled": true},
                {"label": "House", "value": "house"},
                {"label": "Villa", "value": "villa"},
                {"label": "---BnB---", "value": "-", "disabled": true},
                {"label": "Ryokan", "value": "ryokan"},
                {"label": "---Hotels---", "value": "-", "disabled": true},
                {"label": "Hostel", "value": "hostel"},
                {"label": "Hotel", "value": "hotel"},
            ],
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: false
        },
        {
            label: 'Room Type Category',
            key: 'room_type_category',
            filterKey: 'room_type_category',
            sortKey: 'room_type_category',
            value: '',
            inputType: 'normalSelect',
            options: [
                {"label": "Private Room", "value": "private_room"},
                {"label": "Entire Home", "value": "entire_home"},
                {"label": "Shared Room", "value": "shared_room"},
            ],
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Amenities',
            key: 'amenity_categories_hook',
            filterKey: 'amenity_categories_hook',
            sortKey: 'amenity_categories_hook',
            value: '',
            inputType: 'text',
            sort: false,
            filter: false,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Number of Bedrooms',
            key: 'bedrooms',
            filterKey: 'bedrooms',
            sortKey: 'bedrooms',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },

        {
            label: 'Number of Bathrooms',
            key: 'bathrooms',
            filterKey: 'bathrooms',
            sortKey: 'bathrooms',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },

        {
            label: 'Number of Beds',
            key: 'beds',
            filterKey: 'beds',
            sortKey: 'beds',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Permit/Tax ID',
            key: 'permit_or_tax_id',
            filterKey: 'permit_or_tax_id',
            sortKey: 'permit_or_tax_id',
            value: '',
            inputType: 'text',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: false
        },
        {
            label: 'Apartment Number',
            key: 'apt',
            filterKey: 'apt',
            sortKey: 'apt',
            value: '',
            inputType: 'text',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: false
        },
        {
            label: 'Street Address',
            key: 'street',
            filterKey: 'street',
            sortKey: 'street',
            value: '',
            inputType: 'text',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'City',
            key: 'city',
            filterKey: 'city',
            sortKey: 'city',
            value: '',
            inputType: 'text',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
        {
            label: 'State/Province',
            key: 'state',
            filterKey: 'state',
            sortKey: 'state',
            value: '',
            inputType: 'text',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
        {
            label: 'Postal Code',
            key: 'zipcode',
            filterKey: 'zipcode',
            sortKey: 'zipcode',
            value: '',
            inputType: 'text',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Country Code',
            key: 'country_code',
            filterKey: 'country_code',
            sortKey: 'country_code',
            value: '',
            inputType: 'normalSelect',
            options: [
                {"label": "Japan", "value": "JP"},
                {"label": "China", "value": "CN"},
                {"label": "Thailand", "value": "TH"},
                {"label": "Malaysia", "value": "MY"},
            ],
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
        {
            label: 'Latitude',
            key: 'lat',
            filterKey: 'lat',
            sortKey: 'lat',
            value: '',
            inputType: 'number',
            sort: false,
            filter: false,
            edit: true,
            add: true,
            required: true
        },
        {
            label: "Longitude",
            key: 'lng',
            filterKey: 'lng',
            sortKey: 'lng',
            value: '',
            inputType: 'number',
            sort: false,
            filter: false,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Check-in Directions',
            key: 'directions',
            filterKey: 'directions',
            sortKey: 'directions',
            value: '',
            inputType: 'textarea',
            sort: false,
            filter: false,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Max Guest Number',
            key: 'person_capacity',
            filterKey: 'person_capacity',
            sortKey: 'person_capacity',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Listing Currency',
            key: 'listing_currency',
            filterKey: 'listing_currency',
            sortKey: 'listing_currency',
            value: '',
            inputType: 'text',
            sort: false,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Listing Price',
            key: 'listing_price',
            filterKey: 'listing_price',
            sortKey: 'listing_price',
            value: '',
            inputType: 'number',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Check-in Method',
            key: 'check_in_option_category',
            filterKey: 'check_in_option_category',
            sortKey: 'check_in_option_category',
            value: '',
            inputType: 'normalSelect',
            options: [
                {"label": "Doorman", "value": "doorman_entry"},
                {"label": "Lockbox", "value": "lockbox"},
                {"label": "Smartlock", "value": "smartlock"},
                {"label": "Keypad", "value": "keypad"},
                {"label": "Host", "value": "host_checkin"},
                {"label": "Other", "value": "other_checkin"},
            ],
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Check-in Option Instructions',
            key: 'check_in_option_instruction',
            filterKey: 'check_in_option_instruction',
            sortKey: 'check_in_option_instruction',
            value: '',
            inputType: 'textarea',
            sort: false,
            filter: false,
            edit: true,
            add: true,
            required: true
        },
        {
            label: 'Total Inventory Count',
            key: 'total_inventory_count',
            filterKey: 'check_in_option_instruction',
            sortKey: 'check_in_option_instruction',
            value: '',
            inputType: 'number',
            sort: false,
            filter: false,
            edit: true,
            add: true,
            required: false
        },
        {
            label: 'Property External ID',
            key: 'property_external_id',
            filterKey: 'check_in_option_instruction',
            sortKey: 'check_in_option_instruction',
            value: '',
            inputType: 'text',
            sort: false,
            filter: true,
            edit: true,
            add: true,
            required: false
        },
        {
            label: 'Approval Status',
            key: 'requested_approval_status_category',
            filterKey: 'requested_approval_status_category',
            sortKey: 'requested_approval_status_category',
            value: '',
            inputType: 'text',
            sort: false,
            filter: true,
            edit: false,
            add: false,
            required: false
        },
    ],
    'OkmOrder': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'PID',
            key: 'physical_room_physical_room_id_hook',
            filterKey: 'physical_room__physical_room_id',
            sortKey: 'physical_room__physical_room_id',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true,
            required: true
        },
        {
            label: 'Address',
            key: 'physical_room__location',
            filterKey: 'physical_room__location__icontains',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: false
        },
        {
            label: 'Clean Date',
            key: 'clean_date',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            defaultFilter: true,
            inputType: 'date',
            filterInputType: 'dateRange',
            required: true
        },
        {
            label: 'Cleaner',
            key: 'okumasan_cleaner_okumasan_cleaner_name_hook',
            filterKey: 'okumasan_cleaner__okumasan_cleaner_name',
            sortKey: 'okumasan_cleaner__okumasan_cleaner_name',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            inputType: 'normalSelect',
            options: []
        },
        {
            label: 'Reservation Code',
            key: 'heyakun_order_reservation_code_hook',
            filterKey: 'heyakun_order__reservation_code',
            value: '',
            sort: false,
            filter: true,
            edit: false,
            add: true
        },
        {
            label: '清扫指派支出',
            key: 'internal_fee',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            required: false,
            inputType: 'money',
            currencyOptions: config.CURRENCY,
            currencyKey: 'internal_fee_currency',
            currencyVal: ''
        },
        {label: '清扫公司', key: 'physical_room__cleaner__icontains', add: false, hide: false, filter: true},
        {
            label: '清扫报销',
            key: 'cleaner_spending',
            currencyKey: 'cleaner_spending_currency',
            currencyVal: '',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            inputType: 'money',
            currencyOptions: config.CURRENCY
        },
        {
            label: '订单已确认',
            key: 'order_confirmed',
            value: '',
            sort: false,
            filter: true,
            edit: true,
            add: false,
            inputType: 'checkbox',
            tdAlign: 'center',
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {
            label: '订单已派送',
            key: 'order_delivered',
            value: '',
            sort: false,
            filter: true,
            edit: true,
            add: false,
            inputType: 'checkbox',
            tdAlign: 'center',
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {
            label: '派送后发生了变化',
            key: 'order_changed_after_delivery',
            value: '',
            sort: false,
            filter: true,
            edit: true,
            add: false,
            inputType: 'checkbox',
            tdAlign: 'center',
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {
            label: '同天入住',
            key: 'is_same_day_checkin',
            value: '',
            sort: false,
            filter: true,
            edit: true,
            add: true,
            tdAlign: 'center',
            inputType: 'checkbox',
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {
            label: '下次入住人数',
            key: 'next_checkin_guest_num',
            value: '',
            sort: false,
            filter: false,
            edit: false,
            add: false,
            inputType: 'text'
        },
        {
            label: '下次入住备注',
            key: 'next_checkin_comment',
            filterKey: 'next_checkin_comment__icontains',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            inputType: 'textarea'
        },
        {
            label: 'Heyakun订单备注',
            key: 'heyakun_order_comment',
            value: '',
            filterKey: 'heyakun_order__comment__icontains',
            sort: false,
            filter: true,
            edit: false,
            add: false,
            inputType: 'textarea'
        },
        {
            label: '内部备注',
            key: 'comment',
            value: '',
            filterKey: 'comment__icontains',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            inputType: 'textarea'
        },
        {
            label: '对外备注',
            key: 'external_comment',
            filterKey: 'external_comment__icontains',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            inputType: 'textarea'
        },
    ],
    'RecurringExpense': [
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'id', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: '房源id',
            key: 'physical_room__physical_room_id',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: false
        },
        {
            label: '房源id',
            key: 'physical_room__id',
            updateKey: 'physical_room__id',
            value: '',
            sort: false,
            filter: false,
            edit: false,
            add: true,
            required: true,
            hideInEdit: true,
            hide: true,
            inputType: 'myselect',
            options: [],
            minimumInputLength: 2,
        },
        {
            label: '金额', key: 'amount', currencyKey: 'currency', currencyVal: '', value: '',
            sort: true, filter: true, edit: true, add: true, inputType: 'money', currencyOptions: config.CURRENCY
        },
        {
            label: '备注',
            key: 'description',
            value: '',
            filterKey: 'description__icontains',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            inputType: 'textarea'
        },
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'}

    ],
    'DeliveryOrder': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {label: 'id', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: '房源id',
            key: 'delivery_physical_room__physical_room_id',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: false
        },
        {
            label: '房源id',
            key: 'delivery_physical_room__id',
            updateKey: 'delivery_physical_room__id',
            value: '',
            sort: false,
            filter: false,
            edit: false,
            add: true,
            required: true,
            hideInEdit: true,
            hide: true,
            inputType: 'myselect',
            options: [],
            ajax: null,
            minimumInputLength: 2
        },
        {
            label: '配送地址',
            key: 'delivery_address',
            filterKey: 'delivery_address__icontains',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true
        },
        {
            label: '配送时间',
            key: 'delivery_time',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            defaultFilter: true,
            inputType: 'datetimepicker',
            filterInputType: 'dateTimeRange',
            required: true
        },
        {
            label: '清扫人员',
            key: 'okm_cleaner__okumasan_cleaner_name',
            filterKey: 'okm_cleaner__okumasan_cleaner_name',
            sortKey: 'okm_cleaner__okumasan_cleaner_name',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: false,
            hideInEdit: true
        },
        {
            label: '清扫人员',
            key: 'okm_cleaner__id',
            updateKey: 'okm_cleaner',
            value: '',
            sort: false,
            filter: false,
            edit: true,
            add: true,
            inputType: 'normalSelect',
            options: [],
            hide: true
        },
        {
            label: '配送物品',
            key: 'delivery_items',
            filterKey: 'delivery_items__icontains',
            value: '',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            inputType: 'tags',
        },
        {
            label: '配送费用', key: 'order_cost', currencyKey: 'order_currency', currencyVal: '', value: '',
            sort: true, filter: true, edit: true, add: true, inputType: 'money', currencyOptions: config.CURRENCY
        },
        {
            label: '订单已派送',
            key: 'order_delivered',
            value: '',
            sort: false,
            filter: true,
            edit: true,
            add: false,
            inputType: 'checkbox',
            tdAlign: 'center',
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {
            label: '订单改变了(已派送)',
            key: 'order_changed_after_delivery',
            value: '',
            sort: false,
            filter: true,
            edit: true,
            add: false,
            inputType: 'checkbox',
            tdAlign: 'center',
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {
            label: '备注',
            key: 'comment',
            value: '',
            filterKey: 'comment__icontains',
            sort: true,
            filter: true,
            edit: true,
            add: true,
            inputType: 'textarea'
        },
    ],
    'Issues': [
        {'label': 'Actions', key: 'actions', align: 'left', filterKey: 'hidden', type: 'actions'},
        {
            'label': 'Result',
            key: 'hidden',
            sort: false,
            filterSelect: [
                {"label": 'Resolved', value: 1, selected: false},
                {"label": 'Unresolved', value: 0, selected: true},
            ],
            filterKey: 'hidden',
            options: [{label: "Resolved", value: true}, {label: "Unresolved", value: false}],
            inputType: 'normalSelect',
            edit: true
        },
        {
            'label': 'Status', key: 'current_status', sort: false, edit: true, inputType: 'normalSelect', options: [
                {label: 'Pending', value: 'Pending'},
                {label: 'In_Progress', value: "In_Progress"},
                {label: 'Resolved', value: "Resolved"},
            ]
        },
        {'label': 'Submitted On', key: 'gen_time', sort: true},
        {'label': 'Submitted By', key: 'created_by_user', sort: false},
        {'label': 'Title', key: 'summary', sort: false},
        {'label': 'Content', key: 'message', sort: false},
        {'label': 'Related Chat', key: 'related_chat', sort: false, hideInEdit: true},
        {'label': 'Department', key: "current_group", sort: false},
        {
            'label': 'Category',
            key: 'type',
            sort: true,
            edit: true,
            inputType: 'normalSelect',
            options: config.CHAT_TAGS
        },

        {'label': 'Handled By', key: 'resolved_by_user', sort: false},
        {'label': 'Due Date', key: 'deadline', sort: false},
        {'label': 'Type Code', key: 'type_code', sort: false, hideInEdit: true},
    ],
    'OrderAnalysis': [
        {label: '#', key: '#', type: 'serial', tdAlign: 'center'},
        {'label': 'host_name', key: 'host_name', sort: false},
        {'label': 'physical_room_id', key: 'physical_room_id', sort: false},
        {'label': 'status', key: 'is_active'},
        {'label': 'Order入住率', key: 'average_occupancy', sort: false},
        {'label': '订单数', key: 'order_num', sort: false},
        {'label': '入住人数（计次）', key: 'guest_num', sort: false},
        {'label': '平均入住人数', key: 'average_guest_num', sort: false},
        {'label': '月总收益', key: 'total_profit', sort: false},
        {'label': '平均每晚售出价格', key: 'average_profit', sort: false},
        {'label': '潜在收益', key: 'potential_profit', sort: false},
        {'label': '最近车站', key: 'nearest_station', sort: false},
    ],
    'CheckList': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: 'object_id', key: 'object_id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'Name',
            key: 'name',
            filterKey: 'name__icontains',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            add: true
        },
        {
            label: 'Model Name',
            key: 'model_name',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            inputType: 'normalSelect',
            filterInputType: 'select',
            options: [
                {label: 'Order', value: 'Order'},
                {label: 'PhysicalRoom', value: 'PhysicalRoom'},
                {label: 'LogicalRoom', value: 'LogicalRoom'},
                {label: 'Host', value: 'Host'}
            ],
            add: true
        },
        {
            label: 'Is Template',
            key: 'is_template',
            value: '',
            sort: true,
            filter: true,
            edit: false,
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {
            label: 'Is Completed',
            key: 'is_completed',
            value: '',
            sort: true,
            filter: false,
            edit: false,
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {
            label: 'Item Name',
            key: 'check_list_items__item_name',
            isRemoveDuplicate: true,
            filter: true,
            hide: true,
            filterInputType: 'myselect',
            options: [],
            ajax: getAjaxConf('CheckListItem', 'item_name', 'item_name', {check_list__is_template: false}, true)
        },
        {
            label: 'Item is Completed',
            key: 'check_list_items__is_completed',
            isRemoveDuplicate: true,
            filter: true,
            hide: true,
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {label: 'Completion Percentage', key: 'completion_percent', value: '', sort: true, filter: false, edit: false},
    ],
    'Chat': [
        {label: 'name', key: 'name'},
        {label: 'mailbox', key: 'mailbox'},
        {label: 'origin_to_addr', key: 'origin_to_addr'},
        {label: 'platform', key: 'platform'},
        {label: 'latest_date', key: 'latest_date'},
    ],
    'PhysicalRoomServiceInfo': [
        {label: 'Actions', key: 'actions', type: 'actions', tdAlign: 'center'},
        {label: 'ID', key: 'id', value: '', sort: true, filter: true, edit: false},
        {
            label: 'Physical Room',
            key: 'physical_room',
            value: '',
            sort: false,
            filter: false,
            edit: false,
            add: true,
            required: true,
            hide: true,
            inputType: 'myselect',
            ajax: getAjaxConf('PhysicalRoom', 'id', 'physical_room_id'),
            options: [],
            minimumInputLength: 2,
        },
        {
            label: 'PID',
            key: 'physical_room_id_hook',
            filterKey: "physical_room__physical_room_id__icontains",
            value: '',
            sort: false,
            filter: true,
            edit: false,
            add: false,
            hideInEdit: true
        },
        {
            key: 'start_date',
            label: 'Start Date',
            value: '',
            required: true,
            edit: true,
            filter: true,
            add: true,
            inputType: 'date',
            className: 'col-md-6',
            filterInputType: 'dateRange'
        },
        {
            key: 'end_date',
            label: 'End Date',
            value: null,
            filter: true,
            edit: true,
            add: true,
            inputType: 'date',
            className: 'col-md-6',
            filterInputType: 'dateRange'
        },
        {
            key: 'service_name',
            label: 'Service Name',
            value: '',
            required: true,
            edit: true,
            add: true,
            inputType: 'textarea',
        },
        {
            label: 'Room Blocked',
            key: 'room_blocked',
            value: false,
            sort: false,
            filter: true,
            edit: true,
            add: true,
            tdAlign: 'center',
            inputType: 'checkbox',
            filterInputType: 'select',
            options: config.BOOL_SELECT
        },
        {
            label: 'Is Finished',
            key: 'is_finished',
            value: false,
            sort: false,
            filter: true,
            edit: true,
            add: true,
            tdAlign: 'center',
            inputType: 'checkbox',
            filterInputType: 'select',
            options: config.BOOL_SELECT
        }
    ]
}
